﻿#define _CRT_SECURE_NO_WARNINGS 1
/*题目描述
编写一个程序，将1~n2按行依次填入n×n的矩阵，执行若干条行或者列的循环移动的指令，再将数字按行依次取出。

指令如下：

指令	含义
L x y	x行循环左移y次
R x y	x行循环右移y次
U x y	x列循环上移y次
D x y	x列循环下移y次
输入
第一行是一个整数K，表示样例的个数。 每个样例的第一行是两个整数n(1≤n≤10)和m(1≤m≤1000)，分别表示矩阵的大小和指令的条数。
以后的m行是m条指令，矩阵的行列按1开始计数，指令满足1≤x≤n,1≤y≤n−1。

输出
每行输出一个样例的结果，数字之间用一个空格隔开，行末无空格。*/
#include<stdio.h>
#include<string.h>

char ch[1006];
int x[1006];
int y[1006];
int arr[16][16];

void swap(int* a, int* b)
{
    int tmp;
    tmp = *a;
    *a = *b;
    *b = tmp;

}

void move(int n, int i)
{
    int tmp = 0, j = 0, p = 0;
    int q = 0;
    if (ch[i] == 'L')
    {
        for (j = 0; j < y[i]; j++)
        {
            for (p = 1; p <= n - 1; p++)
            {
                swap(&arr[x[i]][p], &arr[x[i]][p + 1]);
            }
        }

    }
    else if (ch[i] == 'R')
    {
        q = n - y[i];
        for (j = 0; j < q; j++)
        {
            for (p = 1; p <= n - 1; p++)
            {
                swap(&arr[x[i]][p], &arr[x[i]][p + 1]);
            }
        }


    }
    else if (ch[i] == 'U')
    {
        for (j = 0; j < y[i]; j++)
        {
            for (p = 1; p <= n - 1; p++)
            {
                swap(&arr[p][x[i]], &arr[p + 1][x[i]]);
            }
        }

    }
    else if (ch[i] == 'D')
    {
        q = n - y[i];
        for (j = 0; j < q; j++)
        {
            for (p = 1; p <= n - 1; p++)
            {
                swap(&arr[p][x[i]], &arr[p + 1][x[i]]);
            }
        }

    }

}



int main()
{
    int k;
    scanf("%d", &k);
    while (k--)
    {

        int n, m;
        scanf("%d%d", &n, &m);
        int i = 0, j = 0, p = 1;
        for (j = 1; j <= n; j++)
        {
            for (i = 1; i <= n; i++)
            {
                arr[j][i] = p;
                p++;
            }
        }

        for (i = 1; i <= m; i++)
        {
            getchar();
            scanf("%c%d%d", &ch[i], &x[i], &y[i]);
            move(n, i);
        }
        for (j = 1; j <= n; j++)
        {
            for (i = 1; i <= n; i++)
            {
                printf("%d", arr[j][i]);
                if ((j != n) || (i != n))
                    printf(" ");
            }
        }
        printf("\n");

    }
    return 0;
}